; unsigned long long int dividir(unsigned long long int divisor, unsigned dividendo);

global dividir

%define l_dividendo [ebp + 8]
%define h_dividendo [ebp + 12]
%define divisor [ebp + 16]

section .text

dividir:
	push ebp
	mov ebp, esp
	push esi
	push edi
	push ebp
	
	xor edx, edx ; Limpio EDX.
	mov eax, h_dividendo ; Muevo a EAX la parte alta de el dividendo.
	mov esi, divisor ; Muevo a ESI el divisor.
	div esi ; Divido. El cociente me queda en EAX y el resto en EDX.
	
	mov edi, eax ; Guardo la parte alta del cociente en EDI.
	
	mov eax, l_dividendo ; Muevo a EAX la parte baja de el dividendo.
	div esi ; Divido. El cociente me queda en EAX y resto en EDX.
	
	mov edx, edi ; Muevo la parte alta del cociente que esta en EDI a EDX.

fin:
	pop ebp
	pop edi
	pop esi
	pop ebp
	ret
